package com.wv.model.basic;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Data
@EqualsAndHashCode(callSuper = false)
@TableName("basic_house")
@ExcelIgnoreUnannotated
public class BasicHouse {

    @TableId(value = "id", type = IdType.INPUT)
    private String id; // 主键

    @ExcelProperty("第三方房产唯一编号")
    @ColumnWidth(20)
    private String thirdHouseId; // 第三方房产唯一编号

    @ExcelProperty("房号")
    @ColumnWidth(20)
    private String houseNum; // 房号

    @ExcelProperty("建筑面积")
    @ColumnWidth(20)
    private String buildingArea; // 建筑面积

    @ExcelProperty("套内面积")
    @ColumnWidth(20)
    private String innerArea; // 套内面积

    @ExcelProperty("公摊面积")
    @ColumnWidth(20)
    private String publicArea; // 公摊面积

    @ExcelProperty("房屋楼层")
    @ColumnWidth(20)
    private String houseFloor; // 房屋楼层

    @ExcelProperty("房屋类型")
    @ColumnWidth(20)
    private String houseType; // 房屋类型:住宅,公寓,办公,厂房,仓库,商铺,酒店,别墅,其它

    @ExcelProperty("房屋状态")
    @ColumnWidth(20)
    private String houseStatus; // 房屋状态:未出售,已出售,已入伙,已入住

    @ExcelProperty("入住日期")
    @ColumnWidth(25)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime resideDate; // 入住日期

    @ExcelProperty("社区ID")
    @ColumnWidth(20)
    private String communityId; // 社区ID

    @ExcelProperty("楼栋结构串（如：-1-2-3-）")
    @ColumnWidth(20)
    private String structureFullIds; // 楼栋结构串，例如:-1-2-3-

    @ExcelProperty("是否删除（是：Y，否：N）")
    @ColumnWidth(20)
    private String isDeleteFlag; // 是否删除:Y/N

    private String createUserId;

    @ExcelProperty("创建人（由系统写入）")
    @ColumnWidth(20)
    @TableField(exist = false)
    private String createUser; // 创建人

    @ExcelProperty("创建时间（由系统写入）")
    @ColumnWidth(25)
    private LocalDateTime createTime; // 创建时间

    @TableField(exist = false)
    private String structureFullName; // 楼栋结构全名
}
